time-to-seconds
Unopinionated time to seconds converter that lets you decide the format of your h:m:s
; as long as you keep the number of colons between 0
and 2
it does not matter if you use "hh:mm:ss"
, "h:m:s"
or "hhh:mmmm:ssss"
format - you will always get the number of seconds back as an integer.
Documentation
Usage
Pass time as a string, e.g.:
"h:m:s"
"m:s"
":s"
"s"
- or any variation of
"h:m:s"
, e.g. ":m:s"
; as long as you keep the number of colons between 0 and 2, where h
, m
or s
are any numbers, you will get seconds - as a number - in return.
Examples
var timeToSeconds = require("time-to-seconds");
timeToSeconds("2:2:2");
timeToSeconds("02:02:02");
timeToSeconds("2:02:02");
timeToSeconds("2:2:02");
timeToSeconds("2:");
timeToSeconds("2:0");
timeToSeconds("02:0");
timeToSeconds("02:00");
timeToSeconds(":2");
timeToSeconds("2");
timeToSeconds("0:2");
timeToSeconds("0:02");
timeToSeconds("00:02");
timeToSeconds("");
timeToSeconds("0");
Empty Strings
The non-strict format will allow for the input of an empty string which will be treated the same as passing the number 0
; the below inputs are equivalent and will return 0
seconds:
timeToSeconds("")
timeToSeconds("0")
timeToSeconds(":0")
timeToSeconds("::0")
timeToSeconds(":")
timeToSeconds("::")
Error Handling
timeToSeconds("Anything else than time string");
timeToSeconds("2:2:2:2");
Decimal Numbers
If you pass decimals to the function, e.g.:
timeToSeconds("0.2:00")
ortimeToSeconds("0.2:")
(in the above examples the inputs are the same) it will be interpreted as 0.2 of one minute, so 12 seconds (60 * 0.2 = 12 seconds
).
Similarly, if you pass, e.g.:
timeToSeconds("0.2:00:00")
ortimeToSeconds("0.2::")
(again, the inputs are the same) it will be interpreted as 0.2 of one hour, so 720 seconds (3600 * 0.2 = 720 seconds
).
Together:
timeToSeconds("0.2:0.2:00")
ortimeToSeconds("0.2:0.2:")
will return 732 seconds (0.2
of one hour is 720 seconds
, 0.2
of one minute is 12 seconds
; 720 + 12 = 732 seconds
)
Note: passing decimals as seconds, e.g.: timeToSeconds("0:0:0.2")
, will simply return 0.2 seconds
.
Math
You could calculate the value to convert and because of the non-strict format, pass the calcualted value to the function, e.g.:
var num = Math.log10(100);
timeToSeconds(`${num.toString()}:`);
timeToSeconds(`${Math.log10(100).toString()}:`);
License
MIT